Hierarchical systems organize objects into multiple levels arranged in a tree like structure where each level of objects may be linked to objects in the level below. A common example of a hierarchical system in computers is a file system in which directories contain both files and subdirectories. Such file organization is called a hierarchical file system. In addition to file systems, many data sets or data structures for strong information are hierarchical in form.
Hierarchical data sets and systems may be managed using different types of graphical user interfaces that visualize hierarchical structures such as trees. For example, a tree widget is a type of tool for managing and visualizing hierarchical data sets that expand and collapse portions of the data.
FIGS. 1A and 1B are diagrams illustrating conventional visualizations of hierarchical data sets. Branches and sub-branches of the trees can be expanded and collapsed either programmatically or by the user to display or hide the information contained therein. As a specific object in the data set is located, a user may expand the parent object. In the case of a large data set with deep hierarchies, expanding the tree may result in a large number of unintended objects displayed along the expansion path. The resulting large visualization of the hierarchy and the user interaction thereof can be complex and difficult to manage on conventional screens. The large visualization has to be scrolled in and out as additional objects are located and users target additional objects and actions. This problem is exacerbated when a larger visualization is viewed on handheld devices with smaller screens.
Accordingly, a need exists for an improved method and system for controlling the size of a hierarchical visualization.